-
Notifications
You must be signed in to change notification settings - Fork 61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Backport of some concepts from util
to C++17
#1741
Backport of some concepts from util
to C++17
#1741
Conversation
e50ec72
to
0949690
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1741 +/- ##
==========================================
- Coverage 90.04% 90.03% -0.02%
==========================================
Files 396 396
Lines 37928 37968 +40
Branches 4262 4261 -1
==========================================
+ Hits 34154 34183 +29
- Misses 2477 2491 +14
+ Partials 1297 1294 -3 ☔ View full report in Codecov by Sentry. |
Thank you very much, I update your branch, so make sure to git pull and have a look at my changes first:
I have fixed the I hope that with these changes and suggestions you can continue, please let me know when there is additional trouble, then we can communicate further (probably next week). |
Thank you! For reference, I build the whole engine just to make sure that everything still builds especially since I'm currently working on the utility library which is used throughout a good portion of the codebase. Will let you know if I spot more problems. |
Hello @joka921 , |
@gpicciuca
TLDR: In general you should work on changing one thing, and then making sure that it compiles in both modes, currently I am doing a lot of cleanup in different places where it would be possible to discuss the occuring problems in advance, but we are all just learning to use these macros and their limitations (I have also learned several things about template metaprogramming in the past week). |
A bit more verbose, but it works.
|
@joka921 The changes in Will continue working on this next week. Feel free to have a look in the meantime if you have time. |
Okay, I have brought this back to compilation in both modes, but it took me quite a lot of time. Please continue as follows:
At some point, contact me again with the list of concepts where issues remain (the ones from point 3.) such that I can have a look at the more advanced techniques that we might need there. Let me know, if I can be of assistance or if there are additional questions. |
8878380
to
1770f2c
Compare
Ignore the force-push I just did please. Rebase went wrong. Working on it. |
1770f2c
to
5a83a04
Compare
Rebase solved. Both modes build just fine with this last commit. Tackling each concept now individually to not end up in a dead-end again. |
@gpicciuca |
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
I'm going through those enable_if_t templates again. One thing worth mentioning is that with the v3-ranges macros, you cannot have variadic arguments there. For example:
In these cases (and there are quite a few), we cannot even apply the normal C++17 sfinae techniques as you'd have to specify the Another example, although just a test:
The |
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
dc60f38
to
8b2f5f5
Compare
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have made a thorough pass. I have marked some nasty details which I will look at myself first. Thanks for the tedious work so far,
I'll get back to you once I have addressed the things I want to change myself.
test/ConfigManagerTest.cpp
Outdated
@@ -42,8 +42,13 @@ | |||
|
|||
using namespace std::string_literals; | |||
|
|||
// TODO<joka921, gpicciuca>, some of those currently don't compile, but we first | |||
// take care of more important things. | |||
#if false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll have a look at those
# Conflicts: # src/backports/concepts.h
@joka921 Since you're working on this branch right now and my changes for the next PR are ready, is it fine to push here or shall I create a new PR and rebase afterwards (2nd PR is a branch-off from this one)? |
@gpicciuca |
We now only have to make the configManagerTests work again. Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Signed-off-by: Johannes Kalmbach <[email protected]>
Conformance check passed ✅No test result changes. |
|
util
to C++17
This affects many files, as the
util/TypeTraits.h
header introduces several general concepts that are used all across the QLever codebase.